//package com.sx.manage.service.consumer;
//
//import java.util.List;
//
//import javax.annotation.Resource;
//
//import org.apache.commons.lang3.StringUtils;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Service;
//
//import com.sx.common.vo.BaseVO;
//import com.sx.manage.biz.consumer.relation.IMConsumerDataRelationBiz;
//import com.sx.manage.service.bank.IMBaseConsumerBankMapService;
//import com.sx.manage.service.bank.IMConsumerBankMapService;
//import com.sx.manage.service.consumer.network.IMBasePersonConsumerNetworkService;
//import com.sx.manage.service.sys.IMBaseSystemConfigInfoService;
//import com.sx.manage.util.ClassPackUtil;
//import com.sx.manage.util.WebServiceUtil;
//import com.sx.manage.util.WebServiceUtils;
//import com.sx.model.constants.MSystemConstants;
//import com.sx.model.constants.type.bank.MUsingStatus;
//import com.sx.model.manage.mybatis.form.bank.MConsumerBankMapForm;
//import com.sx.model.manage.mybatis.form.consumer.MConsumerDataRelationForm;
//import com.sx.model.manage.mybatis.form.sys.MSystemConfigInfoForm;
//import com.sx.model.manage.mybatis.vo.consumer.MConsumerBankMapVO;
//import com.sx.model.manage.mybatis.vo.consumer.MConsumerDataRelationVO;
//import com.sx.model.manage.mybatis.vo.consumer.MPersonalConsumerNetworkVO;
//import com.sx.model.manage.mybatis.vo.sys.MSysConfigVO;
//import com.sx.model.manage.mybatis.web.form.huaxia2.HxAccInfoChangeForm;
//import com.sx.model.manage.mybatis.web.form.huaxia2.HxAccInfoSignForm;
//import com.sx.model.manage.mybatis.web.form.huaxia2.HxBindOutAndInAccountInfoForm;
//import com.sx.model.manage.mybatis.web.vo.huaxia02.query.HxQueryConsumerInfoVO;
//
///**
// * 华夏二期 子账户相关web端service
// * 
// * @author Administrator
// *
// */
//@Service("huaxiaAccountWebService")
//@SuppressWarnings("rawtypes")
//public class HuaxiaAccountWebService {
//	// 日志
//	private Logger _log = LoggerFactory.getLogger(this.getClass());
//
//	// 个人银行信息
//	@Resource(name = "mBasePersonConsumerNetworkServiceImpl")
//	private IMBasePersonConsumerNetworkService mBasePersonConsumerNetworkServiceImpl;
//
//	// 用户银行关系
//	@Resource(name = "mBaseConsumerBankMapServiceImpl")
//	private IMBaseConsumerBankMapService mBaseConsumerBankMapServiceImpl;
//	// 用户关系数据
//	@Resource(name = "mConsumerDataRelationBizImpl")
//	private IMConsumerDataRelationBiz mConsumerDataRelationBizImpl;
//	// 系统参数配置
//	@Resource(name = "mBaseSystemConfigInfoServiceImpl")
//	private IMBaseSystemConfigInfoService mBaseSystemConfigInfoServiceImpl;
//	// web端service帮助类
//	@Resource(name = "webServiceUtils")
//	private WebServiceUtils webServiceUtils;
//	// 用户银行关系
//	@Resource(name = "consumerBankMapServiceImpl")
//	private IMConsumerBankMapService consumerBankMapServiceImpl;
//	/**
//	 * 根据摊位号查询用户信息
//	 * 
//	 * @param accountNo
//	 * @return
//	 */
//	public HxQueryConsumerInfoVO queryConsumerByAccountNo( String accountNo) {
//		_log.info("根据accountNo={}查询用户绑定银行信息", accountNo);
//		if (StringUtils.isBlank(accountNo)) {
//			return new HxQueryConsumerInfoVO("m.parameter.is.null");
//		}
//		// 查询华夏二期渠道编号
//		MSystemConfigInfoForm configForm = new MSystemConfigInfoForm();
//		configForm.setConfig_name(MSystemConstants.HUA_XIA_CODE_02);
//		_log.info("查询华夏二期编号configForm={}", configForm);
//		MSysConfigVO sysConfigVO = mBaseSystemConfigInfoServiceImpl.queryByIdSystemConfig(configForm).getObjVo();
//		String channel_type = sysConfigVO.getConfig_value();
//		// 查询用户银行信息
//		_log.info("根据accountNo={},channel_type={}查询用户银行信息", accountNo, channel_type);
//		MConsumerBankMapVO bankMapVO = mBaseConsumerBankMapServiceImpl.queryConsumerBankMapByAccountNo(accountNo, channel_type).getObjVo();
//		if (null == bankMapVO) {
//			_log.info("accountNo={},channel_type={}用户没有绑定银行卡", accountNo, channel_type);
//			return new HxQueryConsumerInfoVO("sx.consumer.bank.not.bind");
//		}
//		// 查询用户基本信息
//		MPersonalConsumerNetworkVO consumerVO = mBasePersonConsumerNetworkServiceImpl.get_consumer_by_id(bankMapVO.getConsumer_id()).getObjVo();
//
//		return ClassPackUtil.createHxQueryConsumerInfoVO(consumerVO, bankMapVO);
//	}
//
//	/**
//	 * 子账户变更信息确认
//	 * 
//	 * @param changeForm
//	 * @return
//	 */
//
//	public BaseVO accountInfoChangeConfirm(HxAccInfoChangeForm changeForm) {
//		_log.info("子账户变更信息确认changeForm={}", changeForm);
//		MConsumerDataRelationVO relationVO = queryRelationVO(changeForm.getSubAcc());
//		if (null == relationVO) {
//			_log.info("用户子账户不存在subAcc={}", changeForm.getSubAcc());
//			return BaseVO.createErrorMsg("m.consumer.relation.bank.account.code.is.not.exists");
//		}
//		// 查询用户基本信息,判断信息是否相同
//		MPersonalConsumerNetworkVO consumerVO = mBasePersonConsumerNetworkServiceImpl.get_consumer_by_id(relationVO.getConsumer_id()).getObjVo();
//		if (!changeForm.getTradeMemBerName().equals(consumerVO.getConsumer_name())) {
//			_log.info("子账户变更信息不相同tradeMemBerName={},consumer_name={}", changeForm.getTradeMemBerName(), consumerVO.getConsumer_name());
//			return BaseVO.createErrorMsg("交易会员名称错误");
//		}
//		if (!changeForm.getPapersCode().equals(consumerVO.getLaw_no())) {
//			_log.info("子账户变更信息不相同papersCode={},law_no={}", changeForm.getPapersCode(), consumerVO.getLaw_no());
//			return BaseVO.createErrorMsg("证件代码错误");
//		}
//		if (!changeForm.getEmail().equals(consumerVO.getEmail())) {
//			_log.info("子账户变更信息不相同form_email={},vo_email={}", changeForm.getEmail(), consumerVO.getEmail());
//			return BaseVO.createErrorMsg("邮箱错误");
//		}
//		return BaseVO.createSuccessMsg(null);
//	}
//
//	/**
//	 * 子账户签约信息确认
//	 * 
//	 * @param signForm
//	 * @return
//	 */
//	public BaseVO contractAccountInfoConfirm(HxAccInfoSignForm signForm) {
//		_log.info("子账户签约信息确认signForm={}", signForm);
//		MConsumerDataRelationVO relationVO = queryRelationVO(signForm.getSubAccount());
//		if (null == relationVO) {
//			_log.info("用户子账户不存在subAccount={}", signForm.getSubAccount());
//			return BaseVO.createErrorMsg("m.consumer.relation.bank.account.code.is.not.exists");
//		}
//		// 查询用户基本信息,判断信息是否相同
//		MPersonalConsumerNetworkVO consumerVO = mBasePersonConsumerNetworkServiceImpl.get_consumer_by_id(relationVO.getConsumer_id()).getObjVo();
//		// 判断绑定信息是否相同
//		return confirmContractInfo(signForm, consumerVO, webServiceUtils.queryAccountNo(relationVO.getConsumer_id()), webServiceUtils.queryBranchAccountNo(relationVO.getConsumer_id()), webServiceUtils.queryTradeMemberCode(relationVO.getConsumer_id()));
//	}
//
//	/**
//	 * 子账户绑定账户信息确认
//	 * 
//	 * @param bindForm
//	 * @return
//	 */
//	public BaseVO accountBindInfoConfirm(HxBindOutAndInAccountInfoForm bindForm) {
//		_log.info("子账户绑定账户信息确认bindForm={}", bindForm);
//		MConsumerDataRelationVO relationVO = queryRelationVO(bindForm.getSubAccount());
//		if (null == relationVO) {
//			_log.info("用户子账户不存在subAccount={}", bindForm.getSubAccount());
//			return BaseVO.createErrorMsg("m.consumer.relation.bank.account.code.is.not.exists");
//		}
//		// 查询用户基本信息,判断信息是否相同
//		MPersonalConsumerNetworkVO consumerVO = mBasePersonConsumerNetworkServiceImpl.get_consumer_by_id(relationVO.getConsumer_id()).getObjVo();
//		MConsumerBankMapVO bankMapVO = mBaseConsumerBankMapServiceImpl.query_consumer_bank_vo(consumerVO.getId());
//		if(null==bankMapVO||null==bankMapVO.getId()) {
//			bankMapVO = mBaseConsumerBankMapServiceImpl.query_consumerBankMap_for_manage(consumerVO.getId(),null);
//		}
//		BaseVO baseVO = confirmBindInfo(bindForm,consumerVO,bankMapVO);
//		if(!baseVO.isSuccess()) {
//			_log.info("子账户绑定账户信息确认未通过error={}",baseVO.getMsg());
//			return baseVO;
//		}
//		//是华夏银行卡
//		if(WebServiceUtil.configHuaXiaBank(bankMapVO.getCls_bank_name())) {
//			_log.info(" 是华夏银行，修改华夏银行卡的状态 consumer_id={},bank_map_id={}",bankMapVO.getConsumer_id(),bankMapVO.getId());
//			MConsumerBankMapForm bankMapForm = new MConsumerBankMapForm();
//			bankMapForm.setId(bankMapVO.getId());
//			bankMapForm.setStatus(MUsingStatus.DEFAULT_USED);
//			// 修改银行信息
//			return consumerBankMapServiceImpl.consumerBankMapUpdate(bankMapForm);
//		}
//		return new BaseVO();
//	}
//
//	/** 判断绑定信息是否相同**/
//	private BaseVO confirmBindInfo(HxBindOutAndInAccountInfoForm bindForm,MPersonalConsumerNetworkVO consumerVO,MConsumerBankMapVO bankMapVO) {
//		String accountNo = webServiceUtils.queryAccountNo(consumerVO.getId());
//		String branchAccoutNo = webServiceUtils.queryBranchAccountNo(consumerVO.getId());		
//		_log.info("开始判断绑定信息bindForm={},consumerVO={},bankMapVO={},branchAccoutNo={},accountNo={}",bindForm,consumerVO,bankMapVO,branchAccoutNo,accountNo);
//		if(StringUtils.isBlank(bindForm.getBoothNo())) {
//			_log.info("绑定信摊位号为空={}",bindForm.getBoothNo());
//			return BaseVO.createErrorMsg("摊位号为空");
//		}
//		if(StringUtils.isBlank(bindForm.getSubAccount())) {
//			_log.info("绑定信息子账号为空={}",bindForm.getSubAccount());
//			return BaseVO.createErrorMsg("子账号为空");
//		}
//		if(StringUtils.isBlank(bindForm.getCurrency())) {
//			_log.info("绑定信息币种信息为空={}",bindForm.getCurrency());
//			return BaseVO.createErrorMsg("子账号为空");
//		}
//		if(StringUtils.isBlank(bindForm.getOuathWay())) {
//			_log.info("绑定信息授权渠道为空={}",bindForm.getOuathWay());
//			return BaseVO.createErrorMsg("授权渠道为空");
//		}
//		
//		if(!accountNo.equals(bindForm.getBoothNo())) {
//			_log.info("绑定信息不同={},={}",bindForm.getBoothNo() ,accountNo);
//			return BaseVO.createErrorMsg("摊位号信息错误");
//		}
//		if(!branchAccoutNo.equals(bindForm.getSubAccount())) {
//			_log.info("绑定信息不同={},branchAccoutNo={}",bindForm.getSubAccount() ,branchAccoutNo);
//			return BaseVO.createErrorMsg("子账户信息错误");
//		}
//
//		if(StringUtils.isNotBlank(bindForm.getAccountSign())&&!MSystemConstants.ACCOUNT_SIGN_CARD.equals(bindForm.getAccountSign())) {
//			_log.info("绑定信息不同={},={}",bindForm.getAccountSign() ,MSystemConstants.ACCOUNT_SIGN_CARD);
//			return BaseVO.createErrorMsg("卡号/账号标识错误");
//		}
//		if(StringUtils.isNotBlank(bindForm.getOthersType())&&!MSystemConstants.IS_OTHER_PERSON.equals(bindForm.getOthersType())) {
//			_log.info("绑定信息不同={},={}",bindForm.getOthersType() ,MSystemConstants.IS_OTHER_PERSON);
//			return BaseVO.createErrorMsg("个人/对公类型错误");
//		}
//		if(StringUtils.isNotBlank(bindForm.getSignOutComeType())&&!MSystemConstants.SIGN_TYPE_0.equals(bindForm.getSignOutComeType())) {
//			_log.info("绑定信息不同={},={}", bindForm.getSignOutComeType(),MSystemConstants.SIGN_TYPE_0);
//			return BaseVO.createErrorMsg("签约出入金类型错误");
//		}
//		if(StringUtils.isNotBlank(bankMapVO.getCls_bank_name())&&!bankMapVO.getCls_bank_name().contains("华夏")) {
//			if(MSystemConstants.SIGN_OTHER_BANK_YES.equals(bindForm.getSignOtherBank())) {
//				_log.info("绑定信息不同={},={}",bindForm.getSignOtherBank() ,MSystemConstants.SIGN_OTHER_BANK_YES);
//				return BaseVO.createErrorMsg("跨行标识错误");
//			}
//		}else {
//			if(StringUtils.isNotBlank(bankMapVO.getCls_bank_name())&&!MSystemConstants.SIGN_OTHER_BANK_NO.equals(bindForm.getSignOtherBank())) {
//				_log.info("绑定信息不同={},={}",bindForm.getSignOtherBank() ,MSystemConstants.SIGN_OTHER_BANK_NO);
//				return BaseVO.createErrorMsg("跨行标识错误");
//			}
//		}
//		if(StringUtils.isNotBlank(bindForm.getSettleAccountName())&&!bindForm.getSettleAccountName().equals(bankMapVO.getBank_consumer_name())) {
//			_log.info("绑定信息不同={},={}",bindForm.getSettleAccountName() ,bankMapVO.getBank_consumer_name());
//			return BaseVO.createErrorMsg("结算账号户名错误");
//		}
//		if(StringUtils.isNotBlank(bindForm.getSettleAccountBank())&&!bindForm.getSettleAccountBank().equals(bankMapVO.getCls_bank_name())) {
//			_log.info("绑定信息不同={},={}", bindForm.getSettleAccountBank(),bankMapVO.getCls_bank_name());
//			return BaseVO.createErrorMsg("结算账号开户错误");
//		}
//		if(StringUtils.isNotBlank(bindForm.getSettleAccount())&&!bindForm.getSettleAccount().equals(bankMapVO.getCard_num())) {
//			_log.info("绑定信息不同={},={}",bindForm.getSettleAccount() ,bankMapVO.getCard_num());
//			return BaseVO.createErrorMsg("结算账号错误");
//		}
//
//		return BaseVO.createSuccessMsgBykey(null);	
//	}
//
//	/** 判断签约信息是否相同 **/
//	private BaseVO confirmContractInfo(HxAccInfoSignForm signForm, MPersonalConsumerNetworkVO consumerVO, String accountNo, String barnchAccountNo, String memberCode) {
//		_log.info("开始判断绑定信息bindForm={},consumerVO={},accountNo={},branchAccoutNo={},memberCode={}",signForm,consumerVO,accountNo,barnchAccountNo,memberCode);
//		if(StringUtils.isBlank(signForm.getBoothNo())) {
//			_log.info("绑定信摊位号为空={}",signForm.getBoothNo());
//			return BaseVO.createErrorMsg("摊位号为空");
//		}
//		if(StringUtils.isBlank(signForm.getSubAccount())) {
//			_log.info("绑定信息子账号为空={}",signForm.getSubAccount());
//			return BaseVO.createErrorMsg("子账号为空");
//		}
//		if(StringUtils.isBlank(signForm.getTradeMemCode())) {
//			_log.info("签约信息为空TradeMemCode={}",signForm.getTradeMemCode());
//			return BaseVO.createErrorMsg("交易会员代码为空");
//		}
//		if(StringUtils.isBlank(signForm.getTradeMemBerName())) {
//			_log.info("签约信息为空MemBerCode={}",signForm.getTradeMemBerName());
//			return BaseVO.createErrorMsg("交易会员名称为空");
//		}
//		if(StringUtils.isBlank(signForm.getMerchantNo())) {
//			_log.info("签约信息为空MerchantNo={}",signForm.getMerchantNo());
//			return BaseVO.createErrorMsg("商户代码为空");
//		}
//		if(StringUtils.isBlank(signForm.getTradeMemberProperty())) {
//			_log.info("签约信息为空TradeMemberProperty={}",signForm.getTradeMemberProperty());
//			return BaseVO.createErrorMsg("交易会员性质为空");
//		}
//		if(StringUtils.isBlank(signForm.getPapersType())) {
//			_log.info("签约信息为空PapersType={}",signForm.getPapersType());
//			return BaseVO.createErrorMsg("证件类型为空");
//		}
//		if(StringUtils.isBlank(signForm.getPapersCode())) {
//			_log.info("签约信息为空PapersCode={}",signForm.getPapersCode());
//			return BaseVO.createErrorMsg("证件代码为空");
//		}
//		if(StringUtils.isBlank(signForm.getIsMessager())) {
//			_log.info("签约信息为空IsMessager={}",signForm.getIsMessager());
//			return BaseVO.createErrorMsg("是否需要短信通知为空");
//		}
//		if(StringUtils.isBlank(signForm.getEmail())) {
//			_log.info("签约信息为空email={}",signForm.getEmail());
//			return BaseVO.createErrorMsg("邮箱信息为空");
//		}
//		if (!signForm.getBoothNo().equals(accountNo)) {
//			_log.info("签约信息不同BoothNo={},accountNo= {}", signForm.getBoothNo(), accountNo);
//			return BaseVO.createErrorMsg("摊位号信息为空");
//		}
//		if (!signForm.getSubAccount().equals(barnchAccountNo)) {
//			_log.info("签约信息不同={},={}", signForm.getSubAccount(), barnchAccountNo);
//			return BaseVO.createErrorMsg("子账号信息为空");
//		}
//		if (!signForm.getTradeMemBerName().equals(consumerVO.getConsumer_name())) {
//			_log.info("签约信息不同={},={}", signForm.getTradeMemBerName(), consumerVO.getConsumer_name());
//			return BaseVO.createErrorMsg("交易会员名称错误");
//		}
//		if (!signForm.getTradeMemCode().equals(memberCode)) {
//			_log.info("签约信息不同={},={}", signForm.getTradeMemCode(), memberCode);
//			return BaseVO.createErrorMsg("交易会员代码错误");
//		}
//		
//		if (!signForm.getPapersCode().equals(consumerVO.getLaw_no())) {
//			_log.info("签约信息不同={},={}", signForm.getPapersCode(), consumerVO.getLaw_no());
//			return BaseVO.createErrorMsg("证件代码错误");
//		}
//		if (!signForm.getEmail().equals(consumerVO.getEmail())) {
//			_log.info("签约信息不同={},={}", signForm.getEmail(), consumerVO.getEmail());
//			return BaseVO.createErrorMsg("邮箱错误");
//		}
//		return BaseVO.createSuccessMsg(null);
//	}
//
//	/** 根据子账户查询用户关系 **/
//	private MConsumerDataRelationVO queryRelationVO(String subAcc) {
//		// 根据子账户查询用户关系数据
//		MConsumerDataRelationForm relationForm = new MConsumerDataRelationForm();
//		relationForm.setRelation_string_num(subAcc);
//		//relationForm.setRelation_type(MConsumerDataRelationType.C_BANK_ACCOUNT_CODE_02);
//		List<MConsumerDataRelationVO> relationList = mConsumerDataRelationBizImpl.queryList(relationForm).getData();
//		if (null == relationList || relationList.size()>=1) {
//			_log.info("用户子账户不存在subAcc={}", subAcc);
//			return null;
//		}
//		return relationList.get(0);
//	}
//}
